'\" t
.\"     Title: bugle-showextensions
.\"    Author: 
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\"      Date: October 2007
.\"    Manual: Bugle user manual
.\"    Source: BUGLE 0.0.20150628
.\"  Language: English
.\"
.TH "BUGLE\-SHOWEXTENSION" "7" "October 2007" "BUGLE 0.0.20150628" "Bugle user manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
bugle-showextensions \- show which extensions are used by an OpenGL application
.SH "SYNOPSIS"
.sp
.nf
filterset showextensions
.fi
.SH "DESCRIPTION"
.PP
The
showextensions
filter\-set can be used to determine what version of OpenGL and which extensions are used by a particular application\&. It can be used to check that an application does not accidentally depend on an OpenGL version that is not targeted\&. The most common error is calling a core OpenGL function (for a recent version of OpenGL) when one intended to use an older and more widely supported extension\&.
.PP
Note that it can only report what is used, not what is required, which may be different if the application uses certain features only after detecting them (but see
\fBbugle-extoverride\fR(7)
for a way to handle this)\&. It also only tests the run\-time usage; the compile\-time usage may be different\&.
.PP
Two methods are used for detection: the functions called and the enumerants passed to functions\&. The former is quite reliable, since different entry points are used for the core and extension versions of the same function\&. The latter is necessary to detect extensions such as
GL_SGIS_generate_mipmap
which do not introduce new function calls, but it is less reliable as many enumerants share values\&. Some extensions are not detected at all:
GL_ARB_texture_non_power_of_two
does not introduce any tokens or functions, and some promoted extensions (such as
GL_ARB_pixel_buffer_object) have additional semantics to their predecessors but again introduce no new tokens or functions\&.
.SH "OUTPUT"
.PP
A typical output is the following:
.sp
.if n \{\
.RS 4
.\}
.nf
Min GL version: GL_VERSION_1_5
Min GLX version: GLX_VERSION_1_2
Used extensions: GL_ARB_shader_objects GL_ARB_vertex_shader
.fi
.if n \{\
.RE
.\}
.PP
This indicates that the application used OpenGL 1\&.5 and GLX 1\&.2 (and possibly some extensions that are incorporated into OpenGL 1\&.5), as well as the extensions listed\&.
.SH "BUGS"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Detection is not completely reliable, as described above\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Sometimes extensions are listed even though they are already part of the core version listed\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
It is assumed that OpenGL 1\&.1 and GLX 1\&.2 are used; there is no way to detect whether an application would work on OpenGL 1\&.0 or GLX 1\&.1\&.
.RE
.SH "AUTHOR"
.PP
bugle
is written and maintained by
Bruce Merry\&.
.SH "SEE ALSO"
.PP
\fBbugle\fR(3),
\fBbugle-extoverride\fR(7)
